
package entidades;
import java.util.ArrayList;
import tipos.Cpf;
/**
* Classe cliente que herda de Pessoa.
* @author Daniel Saad
*/
public class Cliente extends Pessoa {
    /** atributo cpf.**/
    private String cpf;
    /**Atributo representando a lista de reservas  do cliente.**/
    private ArrayList<Reserva> lista = new ArrayList();

    /**
     * Construtor.
     * @param cpfParam Cpf do objeto a ser construido
     * @exception NullPointerException
     * @exception IllegalArgumentException
     */
    public Cliente(final String cpfParam) {
        setCpf(cpfParam);
    }
    /**
     * Construtor.
     * @param nome Nome do objeto a ser construido
     * @param telefone Telefone do objeto a ser construido
     * @param cpfParam Cpf do objeto a ser construido
     * @exception NullPointerException
     * @exception IllegalArgumentException
     */
    public Cliente(final String nome, final String telefone
            , final String cpfParam) {
        super(nome, telefone);
        setCpf(cpfParam);
    }

    /**
     * Construtor vazio.
     */
    public Cliente() {
    }

    /**
     * Método get.
     * @return Retorna o cpf do cliente
     */
    public final String getCpf() {
        return cpf;
    }

    /**
     * Método set.
     * @param cpfParam Cpf do cliente a ser setado
     * @exception NullPointerException
     * @exception IllegalArgumentException
     */
    public final void setCpf(final String cpfParam) {
        Cpf.validar(cpfParam);
        this.cpf = cpfParam;
    }

    /**
     * Lista de reservas do cliente.
     * @param reserva Reserva a ser adicionada na lista de reservas do cliente.
     */
    public final void addReserva(final Reserva reserva) {
        lista.add(reserva);
    }

    /**
     * Retorna a lista de reservas do cliente.
     * @return lista, lista do cliente
     */
    public final ArrayList<Reserva> getListaReserva() {
        return (lista);
    }
}
